package com.jwds.digital.bios.business.core.infrastructure.dto.belt.assembler;

import com.jwds.digital.bios.business.core.infrastructure.dto.belt.BeltInfoReqDTO;
import com.jwds.digital.bios.business.core.infrastructure.vo.belt.BeltInfoRespVO;
import com.jwds.digital.bios.business.core.infrastructure.entity.belt.BeltInfo;
import java.util.Objects;

/**
 * BeltInfo DTO与Entity之间的相互转换
 *
 * @author 林柏云
 * @date 2024-10-24
 */
public class BeltInfoAssembler {

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @return 实体对象
  */
  public static BeltInfo dto2entity(BeltInfoReqDTO dto)  {
    if (dto == null) {
      return null;
    }
    BeltInfo entity = new BeltInfo();
    entity.setBeltName(dto.getBeltName());
    entity.setBeltSpeed(dto.getBeltSpeed());
    entity.setBeltLength(dto.getBeltLength());
    entity.setBeltWidth(dto.getBeltWidth());
    entity.setMotorPoles(dto.getMotorPoles());
    entity.setMotorLossFactor(dto.getMotorLossFactor());
    entity.setMotorRatedPower(dto.getMotorRatedPower());
    entity.setMotorRatedEfficiency(dto.getMotorRatedEfficiency());
    entity.setMotorRatedCurrent(dto.getMotorRatedCurrent());
    entity.setMotorImbalanceNum(dto.getMotorImbalanceNum());
    return entity;
  }

  /**
  * 将传输对象转换为实体对象
  *
  * @param dto 传输对象
  * @param entity 原实体对象
  * @return 实体对象
  */
  public static BeltInfo dto2entity(BeltInfoReqDTO dto, BeltInfo entity){
    if (dto == null) {
      return null;
    }
    if(Objects.nonNull(dto.getBeltName())) {
      entity.setBeltName(dto.getBeltName());
    }
    if(Objects.nonNull(dto.getBeltSpeed())) {
      entity.setBeltSpeed(dto.getBeltSpeed());
    }
    if(Objects.nonNull(dto.getBeltLength())) {
      entity.setBeltLength(dto.getBeltLength());
    }
    if(Objects.nonNull(dto.getBeltWidth())) {
      entity.setBeltWidth(dto.getBeltWidth());
    }
    if(Objects.nonNull(dto.getMotorPoles())) {
      entity.setMotorPoles(dto.getMotorPoles());
    }
    if(Objects.nonNull(dto.getMotorLossFactor())) {
      entity.setMotorLossFactor(dto.getMotorLossFactor());
    }
    if(Objects.nonNull(dto.getMotorRatedPower())) {
      entity.setMotorRatedPower(dto.getMotorRatedPower());
    }
    if(Objects.nonNull(dto.getMotorRatedEfficiency())) {
      entity.setMotorRatedEfficiency(dto.getMotorRatedEfficiency());
    }
    if(Objects.nonNull(dto.getMotorRatedCurrent())) {
      entity.setMotorRatedCurrent(dto.getMotorRatedCurrent());
    }
    if(Objects.nonNull(dto.getMotorImbalanceNum())) {
      entity.setMotorImbalanceNum(dto.getMotorImbalanceNum());
    }
    return entity;
  }

  /**
  * 将实体对象转换为传输对象
  *
  * @param entity 实体对象
  * @return 传输对象
  */
  public static BeltInfoRespVO entity2dto(BeltInfo entity) {
    if (entity == null) {
      return null;
    }
    BeltInfoRespVO dto = new BeltInfoRespVO();
    dto.setId(entity.getId());
    dto.setBeltName(entity.getBeltName());
    dto.setBeltSpeed(entity.getBeltSpeed());
    dto.setBeltLength(entity.getBeltLength());
    dto.setBeltWidth(entity.getBeltWidth());
    dto.setMotorPoles(entity.getMotorPoles());
    dto.setMotorLossFactor(entity.getMotorLossFactor());
    dto.setMotorRatedPower(entity.getMotorRatedPower());
    dto.setMotorRatedEfficiency(entity.getMotorRatedEfficiency());
    dto.setMotorRatedCurrent(entity.getMotorRatedCurrent());
    dto.setMotorImbalanceNum(entity.getMotorImbalanceNum());
    dto.setCreateTime(entity.getCreateTime());
    dto.setModifyTime(entity.getModifyTime());
    dto.setCreateUser(entity.getCreateUser());
    dto.setModifyUser(entity.getModifyUser());
    return dto;
  }

}
